package department.service;

import java.sql.SQLException;
import java.util.ArrayList;

import department.dao.DepartmentDAO;
import department.domain.Department;

/*
 * 서비스 클래스는 뭘 하는고?
 * 일단 싱글톤 패턴으로 만들어진다. 
 * DAO에서 만든 각종 메서드를 불러다가 실제 서비스로 구현함
 * 여기서 구현한건 아주 단순화 한거고 실제 서비스 메서드는 각각 필요한 로직에 따라 추가될 수 있다 .
 */
public class DepartmentService {

	private DepartmentDAO dao;
	//DAO쓸거라고 선언!
	private static DepartmentService instance = new DepartmentService();
	//아무나 못쓰는 디파트먼트서비스 객체 생성 
	private DepartmentService(){
		dao = DepartmentDAO.getInstance();
	}//no-argu생성자
	
	public static DepartmentService getInstance(){
		return instance;		
	}
	/**
	 * 부서 등록 메서드 
	 */
	//근데 어떻게 Department 객체를 넘겨 받았지?
	public void registerDepartment(Department department) throws SQLException{
		dao.insertDepartment(department);
	}
	/*
	 * 부서 아이디로 부서 삭제 메서드
	 */
	public void removeDepartmentById(String departmentId) throws SQLException{
		dao.deleteDepartmentById(departmentId);
	}
	/*
	 * 부서 수정 메서드
	 */
	public void modifyDepartment(Department department) throws SQLException{
		dao.updateDepartmentById(department);
	}
	/*
	 * 부서 아이디로 부서정보 조회 메소
	 */
	public Department getDepartmentById(String departmentId) throws SQLException{
		return dao.selectDepartmentById(departmentId);
	}
	/*
	 * 부서 목록 조회 메서드 
	 */
	public ArrayList<Department> getDepartmentList() throws SQLException{
		return dao.selectDepartmentList();
	}
}
